package icu.javayanglei.file.service

import icu.javayanglei.file.vo.CutFileVo
import org.springframework.web.multipart.MultipartFile
import java.io.File

interface IndexService {
    /**
     * 文件切片
     * @param file 文件
     * @param fileSize 切片大小单位 MB
     * @return 切片文件位置
     */
    fun cutFile(file: File, fileSize: Int): CutFileVo;

    /**
     * 文件分割方法
     * @param targetFile 分割的文件
     * @param cutSize 分割文件的大小
     * @return int 文件切割的个数
     */
    fun getSplitFile(targetFile: File, cutSize: Long): Int


    /**
     * 合并文件
     * @param files 分割后的文件
     * @param fileSize 分割文件的大小
     * @return 合并后的文件
     */
    fun mergeFile(files: Array<MultipartFile>): File;

    /**
     * 合并文件
     * @param files 分割后的文件
     * @param fileSize 分割文件的大小
     * @return 合并后的文件
     */
    fun mergeFile(files: Array<File>): File;

    /**
     * multipartFile 转 file
     * @param multipartFile multipartFile
     * @return file
     */
    fun multipartFileToFile(multipartFile: MultipartFile): File;

    /**
     * multipartFile 转 file
     * @param multipartFile multipartFile
     * @return file
     */
    fun multipartFilesToFiles(multipartFile: Array<MultipartFile>): Array<File>;
}
